Openmesh library錯誤之 operator OpenMesh::EdgeHandle': Implicit casts of iterators are unsafe. Use dereferencing operators -> and * instead.

 最近在把舊project移至新框架,產生了一系列的問題,接下來我會一一把遇到的問題做個記錄,以利之後遇到同樣問題可以快速解決,希望也能幫助到大家

這個問題的錯誤描述如下:

'OpenMesh::Iterators::GenericIteratorT<OpenMesh::PolyConnectivity::This,OpenMesh::ArrayKernel::EdgeHandle,OpenMesh::ArrayKernel,{&OpenMesh::ArrayKernel::has_edge_status,0},{&OpenMesh::ArrayKernel::[thunk]: __thiscall OpenMesh::ArrayKernel::`vcall'{12,{flat}}' }',0}>::operator OpenMesh::EdgeHandle': Implicit casts of iterators are unsafe. Use dereferencing operators -> and * instead.


它發生在以下的情況中,裡面的符號使用是→,(左)這邊為原始程式→(右)遇此錯誤修改後的程式

  • 以下程式為用以檢查邊界
                !mesh.is_boundary(eit)!mesh.is_boundary(*eit)
  • 以下程式為用以從半邊取得點
                halfedge_handle(eit, 0)halfedge_handle(*eit, 0)
  • 以下程式為用以為遍歷點時取得點
                                                            point(v_it)→point(*v_it)

留言

這個網誌中的熱門文章

🛠【ASP.NET Core + Oracle】解決 ORA-00904 "FALSE": 無效的 ID 錯誤與資料欄位動態插入顯示問題

🛠【實戰排除教學】從 VS Code 的 _logger 錯誤,到 PowerShell 找不到 npm/serve,再到 Oracle ORA-03135 連線中斷——一次搞懂!

🔎如何在 Oracle PL/SQL 儲存過程中為文字欄位加入換行符號(CHR(10))——以 Updlcmremark 為例